package com.yang.spring.sample1.configuration;

import com.yang.spring.core.annotations.Bean;
import com.yang.spring.core.annotations.Configuration;
import com.yang.spring.core.annotations.Qualifier;
import com.yang.spring.sample1.dto.TestConfigDTO;
import com.yang.spring.sample1.dto.TestInitMethodDTO;
import com.yang.spring.sample1.dto.TestNestedConfigDTO;

@Configuration
public class TestConfiguration {
    @Bean
    public TestConfigDTO testConfigDTO() {
        TestConfigDTO testConfigDTO = new TestConfigDTO();
        testConfigDTO.setAppId("appId1");
        testConfigDTO.setAppSecret("appSecret1");
        return testConfigDTO;
    }

    @Bean
    public TestNestedConfigDTO testNestedConfigDTO(@Qualifier(value = "testConfigDTO") TestConfigDTO testConfigDTO) {
        TestNestedConfigDTO testNestedConfigDTO = new TestNestedConfigDTO();
        testNestedConfigDTO.setTestConfigDTO(testConfigDTO);
        testNestedConfigDTO.setAppName("appName1");
        return testNestedConfigDTO;
    }

    @Bean(initMethod = "initMethod")
    public TestInitMethodDTO testInitMethodDTO() {
        return new TestInitMethodDTO();
    }
}
